﻿using Renci.iRods.Common;
using System;

namespace Renci.iRods.Packets
{
    //#define RodsObjStat_PI "double objSize; int objType; int dataMode; str dataId[NAME_LEN]; str chksum[NAME_LEN]; str ownerName[NAME_LEN]; str ownerZone[NAME_LEN]; str createTime[TIME_LEN]; str modifyTime[TIME_LEN]; struct *SpecColl_PI;" 
    [Packet("RodsObjStat_PI")]
    internal class ObjectStatusPacket : Packet
    {
        [PacketField("objSize", 0, DataTypes.Double)]
        public double ObjectSize { get; set; }

        [PacketField("objType", 1, DataTypes.Int)]
        public ObjectTypes ObjectType { get; set; }

        [PacketField("dataMode", 2, DataTypes.Int)]
        public int Mode { get; set; }

        [PacketField("dataId", 3, DataTypes.String, 64)]
        public string DataID { get; set; }

        [PacketField("chksum", 4, DataTypes.String, 64)]
        public string Checksum { get; set; }

        [PacketField("ownerName", 5, DataTypes.String, 64)]
        public string OwnerName { get; set; }

        [PacketField("ownerZone", 6, DataTypes.String, 64)]
        public string OwnerZone { get; set; }

        [PacketField("createTime", 7, DataTypes.String, 32)]
        public DateTime CreatedTime { get; set; }

        [PacketField("modifyTime", 8, DataTypes.String, 32)]
        public DateTime ModifiedTime { get; set; }

        [PacketField("SpecColl_PI", 9, DataTypes.Packet)]
        public SpecialCollectionPacket SpeciallCollection { get; set; }
    }
}
